<!DOCTYPE html>
<html lang="zh-CN">
<head>
  <meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=2">
<meta name="theme-color" content="#222">
<meta name="generator" content="Hexo 4.2.1">
  <link rel="apple-touch-icon" sizes="180x180" href="/blog/images/apple-touch-icon-next.png">
  <link rel="icon" type="image/png" sizes="32x32" href="/blog/images/favicon-32x32-next.png">
  <link rel="icon" type="image/png" sizes="16x16" href="/blog/images/favicon-16x16-next.png">
  <link rel="mask-icon" href="/blog/images/logo.svg" color="#222">

<link rel="stylesheet" href="/blog/css/main.css">


<link rel="stylesheet" href="/blog/lib/font-awesome/css/all.min.css">
  <link rel="stylesheet" href="/blog/lib/pace/pace-theme-material.min.css">
  <script src="/blog/lib/pace/pace.min.js"></script>

<script id="hexo-configurations">
    var NexT = window.NexT || {};
    var CONFIG = {"hostname":"gitee.com","root":"/blog/","scheme":"Gemini","version":"7.8.0","exturl":false,"sidebar":{"position":"left","display":"post","padding":18,"offset":12,"onmobile":false},"copycode":{"enable":false,"show_result":false,"style":null},"back2top":{"enable":true,"sidebar":false,"scrollpercent":false},"bookmark":{"enable":false,"color":"#222","save":"auto"},"fancybox":false,"mediumzoom":false,"lazyload":false,"pangu":false,"comments":{"style":"tabs","active":null,"storage":true,"lazyload":false,"nav":null},"algolia":{"hits":{"per_page":10},"labels":{"input_placeholder":"Search for Posts","hits_empty":"We didn't find any results for the search: ${query}","hits_stats":"${hits} results found in ${time} ms"}},"localsearch":{"enable":false,"trigger":"auto","top_n_per_article":1,"unescape":false,"preload":false},"motion":{"enable":true,"async":false,"transition":{"post_block":"fadeIn","post_header":"slideDownIn","post_body":"slideDownIn","coll_header":"slideLeftIn","sidebar":"slideUpIn"}}};
  </script>

  <meta name="description" content="最近老师给我们布置了一个作业，让我们使用Java操作数据库实现一个较为简单的学生管理系统。由于以前学习过一些网页的知识，所以打算使用Javaweb+MySQL实现所需功能，下面介绍整个软件的制作流程">
<meta property="og:type" content="article">
<meta property="og:title" content="JavaWeb+MySQL实现学生管理系统">
<meta property="og:url" content="https://gitee.com/chinazhouqian/blog.git/2020/06/18/Javaweb%E5%AE%9E%E7%8E%B0%E5%AD%A6%E7%94%9F%E7%AE%A1%E7%90%86%E7%B3%BB%E7%BB%9F/index.html">
<meta property="og:site_name" content="我的个人博客">
<meta property="og:description" content="最近老师给我们布置了一个作业，让我们使用Java操作数据库实现一个较为简单的学生管理系统。由于以前学习过一些网页的知识，所以打算使用Javaweb+MySQL实现所需功能，下面介绍整个软件的制作流程">
<meta property="og:locale" content="zh_CN">
<meta property="og:image" content="https://pic.downk.cc/item/5eeb334614195aa594b7eb90.jpg">
<meta property="og:image" content="https://pic.downk.cc/item/5eeb3d8714195aa594d081e0.jpg">
<meta property="og:image" content="https://pic.downk.cc/item/5eeb3ea414195aa594d3a42f.jpg">
<meta property="article:published_time" content="2020-06-18T07:49:00.000Z">
<meta property="article:modified_time" content="2020-06-20T07:34:37.433Z">
<meta property="article:author" content="周迁">
<meta name="twitter:card" content="summary">
<meta name="twitter:image" content="https://pic.downk.cc/item/5eeb334614195aa594b7eb90.jpg">

<link rel="canonical" href="https://gitee.com/chinazhouqian/blog.git/2020/06/18/Javaweb%E5%AE%9E%E7%8E%B0%E5%AD%A6%E7%94%9F%E7%AE%A1%E7%90%86%E7%B3%BB%E7%BB%9F/">


<script id="page-configurations">
  // https://hexo.io/docs/variables.html
  CONFIG.page = {
    sidebar: "",
    isHome : false,
    isPost : true,
    lang   : 'zh-CN'
  };
</script>

  <title>JavaWeb+MySQL实现学生管理系统 | 我的个人博客</title>
  






  <noscript>
  <style>
  .use-motion .brand,
  .use-motion .menu-item,
  .sidebar-inner,
  .use-motion .post-block,
  .use-motion .pagination,
  .use-motion .comments,
  .use-motion .post-header,
  .use-motion .post-body,
  .use-motion .collection-header { opacity: initial; }

  .use-motion .site-title,
  .use-motion .site-subtitle {
    opacity: initial;
    top: initial;
  }

  .use-motion .logo-line-before i { left: initial; }
  .use-motion .logo-line-after i { right: initial; }
  </style>
</noscript>

</head>

<body itemscope itemtype="http://schema.org/WebPage">
  <div class="container use-motion">
    <div class="headband"></div>

    <header class="header" itemscope itemtype="http://schema.org/WPHeader">
      <div class="header-inner"><div class="site-brand-container">
  <div class="site-nav-toggle">
    <div class="toggle" aria-label="切换导航栏">
      <span class="toggle-line toggle-line-first"></span>
      <span class="toggle-line toggle-line-middle"></span>
      <span class="toggle-line toggle-line-last"></span>
    </div>
  </div>

  <div class="site-meta">

    <a href="/blog/" class="brand" rel="start">
      <span class="logo-line-before"><i></i></span>
      <h1 class="site-title">我的个人博客</h1>
      <span class="logo-line-after"><i></i></span>
    </a>
  </div>

  <div class="site-nav-right">
    <div class="toggle popup-trigger">
    </div>
  </div>
</div>




<nav class="site-nav">
  <ul id="menu" class="main-menu menu">
        <li class="menu-item menu-item-home">

    <a href="/blog/" rel="section"><i class="fa fa-home fa-fw"></i>首页</a>

  </li>
        <li class="menu-item menu-item-categories">

    <a href="/blog/categories/" rel="section"><i class="fa fa-th fa-fw"></i>分类</a>

  </li>
        <li class="menu-item menu-item-archives">

    <a href="/blog/archives/" rel="section"><i class="fa fa-archive fa-fw"></i>归档</a>

  </li>
  </ul>
</nav>




</div>
    </header>

    
  <div class="back-to-top">
    <i class="fa fa-arrow-up"></i>
    <span>0%</span>
  </div>


    <main class="main">
      <div class="main-inner">
        <div class="content-wrap">
          

          <div class="content post posts-expand">
            

    
  
  
  <article itemscope itemtype="http://schema.org/Article" class="post-block" lang="zh-CN">
    <link itemprop="mainEntityOfPage" href="https://gitee.com/chinazhouqian/blog.git/2020/06/18/Javaweb%E5%AE%9E%E7%8E%B0%E5%AD%A6%E7%94%9F%E7%AE%A1%E7%90%86%E7%B3%BB%E7%BB%9F/">

    <span hidden itemprop="author" itemscope itemtype="http://schema.org/Person">
      <meta itemprop="image" content="https://pic.downk.cc/item/5ec7be4ec2a9a83be5ee74ed.jpg">
      <meta itemprop="name" content="周迁">
      <meta itemprop="description" content="欢迎您的到来">
    </span>

    <span hidden itemprop="publisher" itemscope itemtype="http://schema.org/Organization">
      <meta itemprop="name" content="我的个人博客">
    </span>
      <header class="post-header">
        <h1 class="post-title" itemprop="name headline">
          JavaWeb+MySQL实现学生管理系统
        </h1>

        <div class="post-meta">
            <span class="post-meta-item">
              <span class="post-meta-item-icon">
                <i class="far fa-calendar"></i>
              </span>
              <span class="post-meta-item-text">发表于</span>

              <time title="创建时间：2020-06-18 15:49:00" itemprop="dateCreated datePublished" datetime="2020-06-18T15:49:00+08:00">2020-06-18</time>
            </span>
              <span class="post-meta-item">
                <span class="post-meta-item-icon">
                  <i class="far fa-calendar-check"></i>
                </span>
                <span class="post-meta-item-text">更新于</span>
                <time title="修改时间：2020-06-20 15:34:37" itemprop="dateModified" datetime="2020-06-20T15:34:37+08:00">2020-06-20</time>
              </span>

          

        </div>
      </header>

    
    
    
    <div class="post-body" itemprop="articleBody">

      
        <p>最近老师给我们布置了一个作业，让我们使用Java操作数据库实现一个较为简单的学生管理系统。由于以前学习过一些网页的知识，所以打算使用Javaweb+MySQL实现所需功能，下面介绍整个软件的制作流程</p>
<h1 id="准备"><a href="#准备" class="headerlink" title="准备"></a><a id="more"></a>准备</h1><p><strong>搭建环境</strong><br>我使用的是Eclipse+Tomcat+MySQL+Nginx的组合<br>为了方便代码查看和编辑我还安装了VSCode作为辅助工具</p>
<p><strong>以下为我所使用的软件版本：</strong><br><strong>Eclipse 2020-03&emsp;&emsp;Tomcat 9&emsp;&emsp;MySQL 5.6&emsp;&emsp;Nginx 1.18</strong><br>Eclipse和Tomcat都是安装的最新版本，MySQL使用的是5.6的版本，个人觉得这个版本更加稳定兼容性也更好，Nginx在本地没有安装，本地直接通过Tomcat调试。网站发布到服务器后，使用Nginx反向代理Tomcat，缓存静态资源来降低对Tomcat的请求，降低服务器负载</p>
<h1 id="设计"><a href="#设计" class="headerlink" title="设计"></a>设计</h1><p>以下为这个项目的设计思路</p>
<h2 id="需求分析"><a href="#需求分析" class="headerlink" title="需求分析"></a>需求分析</h2><p>首先要确定要做哪些功能:<br>1、使用数据库来保存数据<br>2、使用用户名+密码进行系统登录<br>3、管理员登录后能对学生进行curd，以及修改自己的密码<br>4、超级管理员登录后能够对管理员进行curd，以及修改密码</p>
<h2 id="表结构设计"><a href="#表结构设计" class="headerlink" title="表结构设计"></a>表结构设计</h2><p>数据库名：<strong>stums</strong><br>根据需求，需要创建：<br><strong>stuinfo表</strong>，保存学生信息以及密码<br><strong>admin表</strong>，保存管理员信息以及密码<br><strong>s_admin表</strong>，保存超级管理员信息以及密码<br>由于我的学生信息中存在班级信息，故创建了一个<strong>class表</strong>保存班级信息。<br>创建完成后如下图所示</p>
<p><img src="https://pic.downk.cc/item/5eeb334614195aa594b7eb90.jpg" alt=""><br>下方提供每个表的详细信息</p>
<h3 id="stuinfo表"><a href="#stuinfo表" class="headerlink" title="stuinfo表"></a>stuinfo表</h3><table>
<thead>
<tr>
<th>字段</th>
<th>约束</th>
<th>说明</th>
</tr>
</thead>
<tbody><tr>
<td>id</td>
<td>唯一</td>
<td>主键</td>
</tr>
<tr>
<td>number</td>
<td>非空</td>
<td>学号</td>
</tr>
<tr>
<td>name</td>
<td>非空</td>
<td>姓名</td>
</tr>
<tr>
<td>sex</td>
<td>非空</td>
<td>性别</td>
</tr>
<tr>
<td>clazz_id</td>
<td>非空、见下图</td>
<td>班级代号</td>
</tr>
<tr>
<td>mobile</td>
<td>-</td>
<td>电话</td>
</tr>
<tr>
<td>password</td>
<td>非空</td>
<td>密码</td>
</tr>
</tbody></table>
<p>外键约束<br><img src="https://pic.downk.cc/item/5eeb3d8714195aa594d081e0.jpg" alt=""></p>
<h3 id="admin表"><a href="#admin表" class="headerlink" title="admin表"></a>admin表</h3><table>
<thead>
<tr>
<th>字段</th>
<th>约束</th>
<th>说明</th>
</tr>
</thead>
<tbody><tr>
<td>id</td>
<td>唯一</td>
<td>主键</td>
</tr>
<tr>
<td>name</td>
<td>非空</td>
<td>姓名</td>
</tr>
<tr>
<td>sex</td>
<td>非空</td>
<td>性别</td>
</tr>
<tr>
<td>clazz_id</td>
<td>非空、见下图</td>
<td>班级代号</td>
</tr>
<tr>
<td>mobile</td>
<td>-</td>
<td>电话</td>
</tr>
<tr>
<td>qq</td>
<td>-</td>
<td>QQ</td>
</tr>
<tr>
<td>password</td>
<td>非空</td>
<td>密码</td>
</tr>
</tbody></table>
<p>外键约束<br><img src="https://pic.downk.cc/item/5eeb3ea414195aa594d3a42f.jpg" alt=""></p>
<h3 id="s-admin表"><a href="#s-admin表" class="headerlink" title="s_admin表"></a>s_admin表</h3><table>
<thead>
<tr>
<th>字段</th>
<th>约束</th>
<th>说明</th>
</tr>
</thead>
<tbody><tr>
<td>id</td>
<td>唯一</td>
<td>主键</td>
</tr>
<tr>
<td>name</td>
<td>非空</td>
<td>账号</td>
</tr>
<tr>
<td>password</td>
<td>非空</td>
<td>密码</td>
</tr>
<tr>
<td>status</td>
<td>非空</td>
<td>状态</td>
</tr>
<tr>
<td>其中status字段决定该超级管理员账号是否有效</td>
<td></td>
<td></td>
</tr>
</tbody></table>
<h3 id="class表"><a href="#class表" class="headerlink" title="class表"></a>class表</h3><table>
<thead>
<tr>
<th>字段</th>
<th>约束</th>
<th>说明</th>
</tr>
</thead>
<tbody><tr>
<td>id</td>
<td>唯一</td>
<td>主键</td>
</tr>
<tr>
<td>name</td>
<td>非空</td>
<td>班级名称</td>
</tr>
<tr>
<td>info</td>
<td>-</td>
<td>班级介绍</td>
</tr>
</tbody></table>
<h2 id="前端设计"><a href="#前端设计" class="headerlink" title="前端设计"></a>前端设计</h2><p>前端我打算将其分为登陆界面和后台管理界面两个部分</p>
<h3 id="登陆界面"><a href="#登陆界面" class="headerlink" title="登陆界面"></a>登陆界面</h3><p>登陆界面输入账号和密码，并且可以对身份进行验证，有打算添加验证码机制。使用H-ui前端框架进行设计。自行修改了部分css样式以符合需要</p>
<h3 id="后台管理界面"><a href="#后台管理界面" class="headerlink" title="后台管理界面"></a>后台管理界面</h3><p>后端根据不同的账号登录显示不同的界面，采用较为流行的easyui进行设计。自行修改了部分css样式并且替换了部分过于老旧的图标以符合需要。<br>管理界面左侧导航栏分为三个部分：学生信息管理、管理员信息管理和系统管理。不同账号登陆后会显示不同的信息</p>
<h4 id="学生账号"><a href="#学生账号" class="headerlink" title="学生账号"></a>学生账号</h4><p>学生账号登陆后，仅显示学生信息管理与系统管理选项，在左侧导航栏选择后可打开相应子界面，仅可对自己的各类信息和密码进行修改</p>
<h4 id="管理员账号"><a href="#管理员账号" class="headerlink" title="管理员账号"></a>管理员账号</h4><p>管理员账号登陆后，显示导航栏所有选项，在左侧导航栏选择后可打开相应子界面，可对所有学生的各类信息进行修改，并且可以修改自己的各类信息和自己的的密码。</p>
<h4 id="超级管理员账号"><a href="#超级管理员账号" class="headerlink" title="超级管理员账号"></a>超级管理员账号</h4><p>超级管理员账号登录后，显示导航栏所有选项，在左侧导航栏选择后可打开相应子界面，可对所有学生及管理员的信息进行修改，并且可以修改自己的密码<br>附：班级管理界面正在开发中，目前对任何账号均不开放，数据库中已默认添加了一个班级的信息</p>
<h3 id="实体类的设计"><a href="#实体类的设计" class="headerlink" title="实体类的设计"></a>实体类的设计</h3><p>实体类仅仅是对数据库中表的一一映射<br>在 Packge[model]下创建了Student、Teacher、Admin、Clazz、Page五个类，分别对应学生实体类、管理员实体类、超级管理员实体类和班级实体类，最后一个是分页类页码封装，有控制数据显示时的起始页、每页显示数量等操作的方法</p>
<h3 id="DAO类的设计"><a href="#DAO类的设计" class="headerlink" title="DAO类的设计"></a>DAO类的设计</h3><p>DAO呢，就是Date Access Object，数据库访问对象，是对数据库相关操作的封装<br>在 Packge[dao]下创建了BaseDao、StudentDao、TeacherDao、AdminDao、ClazzDao五个类<br>BaseDao类封装基本操作，StudentDao类封装学生数据库操作、TeacherDao类封装管理员数据库操作、AdminDao类封装超级管理员数据库操作。ClazzDao类封装班级信息数据库操作</p>
<h3 id="Servlet类的设计"><a href="#Servlet类的设计" class="headerlink" title="Servlet类的设计"></a>Servlet类的设计</h3><p>作为 JavaWeb 应用，一般都会按照如图所示的设计流程进行：<br>Servlet -&gt; Service（业务类） -&gt; DAO -&gt; database<br>当浏览器提交请求到 Tomcat Web 服务器的时候，对应的 Servlet 的doGet/doPost 方法会被调用，接着在 Servlet 中调用 Service类，然后在 Service 类中调用DAO类，最后在 DAO 中访问数据库获取相应的数据</p>
<p>在本项目中，不使用 Service 这一层。 原因是在 DAO 进行了比较详细的设计，已经提供了很好的支持业务的方法。如果在 DAO 上包裹一层 Service 业务类，不过是在直接调用 DAO 设计好的方法罢了。</p>
<p>在 Packge[servlet]下的几个类主要用于接收从Tomcat传过来的数据，并进行处理，将处理之后的结果再返回给Tomcat，再由Tomcat处理，并将最后结果返回给客户端。</p>
<h1 id="测试"><a href="#测试" class="headerlink" title="测试"></a>测试</h1><h1 id="项目总结"><a href="#项目总结" class="headerlink" title="项目总结"></a>项目总结</h1><p>通过这次的作业，我学到了许多前端和后端的相关知识，也让我知道了，我还有很多东西需要学习，所以，我还要在课上和课下更加努力的学习这方面的知识。</p>

    </div>

    
    
    

      <footer class="post-footer">

        


        
    <div class="post-nav">
      <div class="post-nav-item">
    <a href="/blog/2020/05/31/Chrome%E6%B2%B9%E7%8C%B4%E6%8F%92%E4%BB%B6%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B/" rel="prev" title="Chrome油猴插件使用教程">
      <i class="fa fa-chevron-left"></i> Chrome油猴插件使用教程
    </a></div>
      <div class="post-nav-item"></div>
    </div>
      </footer>
    
  </article>
  
  
  



          </div>
          

<script>
  window.addEventListener('tabs:register', () => {
    let { activeClass } = CONFIG.comments;
    if (CONFIG.comments.storage) {
      activeClass = localStorage.getItem('comments_active') || activeClass;
    }
    if (activeClass) {
      let activeTab = document.querySelector(`a[href="#comment-${activeClass}"]`);
      if (activeTab) {
        activeTab.click();
      }
    }
  });
  if (CONFIG.comments.storage) {
    window.addEventListener('tabs:click', event => {
      if (!event.target.matches('.tabs-comment .tab-content .tab-pane')) return;
      let commentClass = event.target.classList[1];
      localStorage.setItem('comments_active', commentClass);
    });
  }
</script>

        </div>
          
  
  <div class="toggle sidebar-toggle">
    <span class="toggle-line toggle-line-first"></span>
    <span class="toggle-line toggle-line-middle"></span>
    <span class="toggle-line toggle-line-last"></span>
  </div>

  <aside class="sidebar">
    <div class="sidebar-inner">

      <ul class="sidebar-nav motion-element">
        <li class="sidebar-nav-toc">
          文章目录
        </li>
        <li class="sidebar-nav-overview">
          站点概览
        </li>
      </ul>

      <!--noindex-->
      <div class="post-toc-wrap sidebar-panel">
          <div class="post-toc motion-element"><ol class="nav"><li class="nav-item nav-level-1"><a class="nav-link" href="#准备"><span class="nav-number">1.</span> <span class="nav-text">准备</span></a></li><li class="nav-item nav-level-1"><a class="nav-link" href="#设计"><span class="nav-number">2.</span> <span class="nav-text">设计</span></a><ol class="nav-child"><li class="nav-item nav-level-2"><a class="nav-link" href="#需求分析"><span class="nav-number">2.1.</span> <span class="nav-text">需求分析</span></a></li><li class="nav-item nav-level-2"><a class="nav-link" href="#表结构设计"><span class="nav-number">2.2.</span> <span class="nav-text">表结构设计</span></a><ol class="nav-child"><li class="nav-item nav-level-3"><a class="nav-link" href="#stuinfo表"><span class="nav-number">2.2.1.</span> <span class="nav-text">stuinfo表</span></a></li><li class="nav-item nav-level-3"><a class="nav-link" href="#admin表"><span class="nav-number">2.2.2.</span> <span class="nav-text">admin表</span></a></li><li class="nav-item nav-level-3"><a class="nav-link" href="#s-admin表"><span class="nav-number">2.2.3.</span> <span class="nav-text">s_admin表</span></a></li><li class="nav-item nav-level-3"><a class="nav-link" href="#class表"><span class="nav-number">2.2.4.</span> <span class="nav-text">class表</span></a></li></ol></li><li class="nav-item nav-level-2"><a class="nav-link" href="#前端设计"><span class="nav-number">2.3.</span> <span class="nav-text">前端设计</span></a><ol class="nav-child"><li class="nav-item nav-level-3"><a class="nav-link" href="#登陆界面"><span class="nav-number">2.3.1.</span> <span class="nav-text">登陆界面</span></a></li><li class="nav-item nav-level-3"><a class="nav-link" href="#后台管理界面"><span class="nav-number">2.3.2.</span> <span class="nav-text">后台管理界面</span></a><ol class="nav-child"><li class="nav-item nav-level-4"><a class="nav-link" href="#学生账号"><span class="nav-number">2.3.2.1.</span> <span class="nav-text">学生账号</span></a></li><li class="nav-item nav-level-4"><a class="nav-link" href="#管理员账号"><span class="nav-number">2.3.2.2.</span> <span class="nav-text">管理员账号</span></a></li><li class="nav-item nav-level-4"><a class="nav-link" href="#超级管理员账号"><span class="nav-number">2.3.2.3.</span> <span class="nav-text">超级管理员账号</span></a></li></ol></li><li class="nav-item nav-level-3"><a class="nav-link" href="#实体类的设计"><span class="nav-number">2.3.3.</span> <span class="nav-text">实体类的设计</span></a></li><li class="nav-item nav-level-3"><a class="nav-link" href="#DAO类的设计"><span class="nav-number">2.3.4.</span> <span class="nav-text">DAO类的设计</span></a></li><li class="nav-item nav-level-3"><a class="nav-link" href="#Servlet类的设计"><span class="nav-number">2.3.5.</span> <span class="nav-text">Servlet类的设计</span></a></li></ol></li></ol></li><li class="nav-item nav-level-1"><a class="nav-link" href="#测试"><span class="nav-number">3.</span> <span class="nav-text">测试</span></a></li><li class="nav-item nav-level-1"><a class="nav-link" href="#项目总结"><span class="nav-number">4.</span> <span class="nav-text">项目总结</span></a></li></ol></div>
      </div>
      <!--/noindex-->

      <div class="site-overview-wrap sidebar-panel">
        <div class="site-author motion-element" itemprop="author" itemscope itemtype="http://schema.org/Person">
    <img class="site-author-image" itemprop="image" alt="周迁"
      src="https://pic.downk.cc/item/5ec7be4ec2a9a83be5ee74ed.jpg">
  <p class="site-author-name" itemprop="name">周迁</p>
  <div class="site-description" itemprop="description">欢迎您的到来</div>
</div>
<div class="site-state-wrap motion-element">
  <nav class="site-state">
      <div class="site-state-item site-state-posts">
          <a href="/blog/archives/">
        
          <span class="site-state-item-count">3</span>
          <span class="site-state-item-name">日志</span>
        </a>
      </div>
  </nav>
</div>



      </div>

    </div>
  </aside>
  <div id="sidebar-dimmer"></div>


      </div>
    </main>

    <footer class="footer">
      <div class="footer-inner">
        

        

<div class="copyright">
  
  &copy; 
  <span itemprop="copyrightYear">2020</span>
  <span class="with-love">
    <i class="fa fa-heart"></i>
  </span>
  <span class="author" itemprop="copyrightHolder">周迁</span>
</div>

<!--
  <div class="powered-by">由 <a href="https://hexo.io/" class="theme-link" rel="noopener" target="_blank">Hexo</a> & <a href="https://theme-next.org/" class="theme-link" rel="noopener" target="_blank">NexT.Gemini</a> 强力驱动
  </div>
-->

        








      </div>
    </footer>
  </div>

  
  <script src="/blog/lib/anime.min.js"></script>
  <script src="/blog/lib/velocity/velocity.min.js"></script>
  <script src="/blog/lib/velocity/velocity.ui.min.js"></script>

<script src="/blog/js/utils.js"></script>

<script src="/blog/js/motion.js"></script>


<script src="/blog/js/schemes/pisces.js"></script>


<script src="/blog/js/next-boot.js"></script>




  















  

  

</body>
<!-- 页面点击小红心 -->
<script type="text/javascript" src="/blog/js/src/clicklove.js"></script>
<!-- 交互式粒子特效 -->
<script type="text/javascript" src="https://cdn.bootcss.com/canvas-nest.js/1.0.1/canvas-nest.js"></script>
</html>
